/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * articulos_sie_almacen_movi_estadis.java
 *
 * Created on 12/08/2011, 06:21:29 PM
 */

package sie_invdis;



import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.text.ParseException;
import java.text.*;


import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RefineryUtilities;
/**
 *
/**
 *
 * @author Michelle
 */
public class articulos_sie_almacen_movi_estadis extends javax.swing.JFrame {

     private javax.swing.table.DefaultTableModel jtable_modelo_movextras;
     private javax.swing.table.DefaultTableModel jtable_modelo_movextrasdetalle;
     private javax.swing.table.DefaultTableModel jtable_modelo_movextrasxfamilia;
     private javax.swing.table.DefaultTableModel jtable_modelo_movextrasxsubfam;
     
     private  JTable jtable_tiendas=variables_global.gettabla_tiendas();

    bd_conexion x = new bd_conexion();
    ResultSet rs = null;

     private DefaultCategoryDataset datasetlineal = new DefaultCategoryDataset();
     private DefaultCategoryDataset datasettotlineal = new DefaultCategoryDataset();
     private DefaultCategoryDataset datasettotdialineal = new DefaultCategoryDataset();

     private DefaultCategoryDataset datasetpastel = new DefaultCategoryDataset();
     private DefaultCategoryDataset datasettotpastel = new DefaultCategoryDataset();
     private DefaultCategoryDataset datasettotdiapastel = new DefaultCategoryDataset();

     private SimpleDateFormat formateador = new SimpleDateFormat("dd-MM-yyyy");
     private SimpleDateFormat formateadoresta = new SimpleDateFormat("yyyy-MM-dd");

     private int opcionesestadistica=1,opcionesestadisticad=1;

    /** Creates new form articulos_sie_almacen_movi_estadis */
    public articulos_sie_almacen_movi_estadis() {
        this.iniciar_modelo_movimientostotalextie();
        this.iniciar_modelo_movimientostotalextiedetalle();
        this.iniciar_modelo_movimientosxfamilia();
        this.iniciar_modelo_movimientosxsubfamilia();
        initComponents();
        this.carga_datos_stadisticasxmovi();
        this.buttonGroup1.setSelected(jrbtn_piezas.getModel(), true);
        this.buttonGroup2.setSelected(jrbtn_piezasd.getModel(), true);

        jt_acumuladoxmovimientos.getColumnModel().getColumn(0).setPreferredWidth(120);//cantidad
        jt_acumuladoxfamilia.getColumnModel().getColumn(0).setPreferredWidth(120);//cantidad
        jt_acumuladoxsubfam.getColumnModel().getColumn(0).setPreferredWidth(120);//cantidad
    }

private void iniciar_modelo_movimientostotalextie()
    {

        int numerotiendas=this.jtable_tiendas.getRowCount(),ii=0,idtienda=0,ndias=0;

        jtable_modelo_movextras=new javax.swing.table.DefaultTableModel();//Creo el modelo
        jtable_modelo_movextras.addColumn("Movimiento/Tienda");
        for(int i=0;i<numerotiendas;i++)
           {
                 jtable_modelo_movextras.addColumn("<html><b>"+this.jtable_tiendas.getValueAt(i,1).toString()+":"+this.jtable_tiendas.getValueAt(i,0).toString()+"</b></html>");
           }
        jtable_modelo_movextras.addColumn("Total");

    }
private void iniciar_modelo_movimientostotalextiedetalle()
    {

        int numerotiendas=this.jtable_tiendas.getRowCount(),ii=0,idtienda=0,ndias=0;

        jtable_modelo_movextrasdetalle=new javax.swing.table.DefaultTableModel();//Creo el modelo
        jtable_modelo_movextrasdetalle.addColumn("Mes/Tienda");
        for(int i=0;i<numerotiendas;i++)
           {
                 jtable_modelo_movextrasdetalle.addColumn("<html><b>"+this.jtable_tiendas.getValueAt(i,1).toString()+":"+this.jtable_tiendas.getValueAt(i,0).toString()+"</b></html>");
           }
        jtable_modelo_movextrasdetalle.addColumn("Total");

    }
private int findcolumna_idtienda (String titulo)  {
  int columnas = jtable_modelo_movextras.getColumnCount(),columencontrado=0;
  String columtitulo[]=null;
      for(int j = 0 ;j < columnas ; j++)
                {
                    columtitulo= jtable_modelo_movextras.getColumnName(j).replace("<html><b>","").split(":");
                     System.out.println("Busqueda:"+columtitulo[0]+" "+titulo);
                    if(columtitulo[0].equals(titulo))
                        {
                            columencontrado=j;
                             System.out.println(titulo+" "+columtitulo[0]+" "+columencontrado);
                        }
                }
    return columencontrado;
}
private void iniciar_modelo_movimientosxfamilia()
    {
        jtable_modelo_movextrasxfamilia=new javax.swing.table.DefaultTableModel();//Creo el modelo
        jtable_modelo_movextrasxfamilia.addColumn("Familia");
        jtable_modelo_movextrasxfamilia.addColumn("Piezas");
        jtable_modelo_movextrasxfamilia.addColumn("Costo");
        jtable_modelo_movextrasxfamilia.addColumn("Precio");

    }
private void iniciar_modelo_movimientosxsubfamilia()
    {
        jtable_modelo_movextrasxsubfam=new javax.swing.table.DefaultTableModel();//Creo el modelo
        jtable_modelo_movextrasxsubfam.addColumn("Subfamilia");
        jtable_modelo_movextrasxsubfam.addColumn("Piezas");
        jtable_modelo_movextrasxsubfam.addColumn("Costo");
        jtable_modelo_movextrasxsubfam.addColumn("Precio");

    }
private void crea_hoja_movimientostadis(String idmovestra,String describestatus,String cantidad,String importecosto,String importeprecio,int columna)
    {
        DecimalFormat miformat = new DecimalFormat("###,###,###");
        int numerofilas=this.jtable_modelo_movextras.getRowCount();
        String idstat[]=null;
        int numerocolumnas=this.jtable_modelo_movextras.getColumnCount(),ii=00;
        int encontrado=0;
        Object[] fnewRow = new Object[numerocolumnas];
        //invoco al metodo que trae el recordset de datos
        for( ii=0;ii<numerofilas;ii++)
                {
                    idstat=jtable_modelo_movextras.getValueAt(ii, 0).toString().split(":");
                    //System.out.println("Agregando:"+Float.valueOf(cantidad)+" "+idmovestra);
                    if (idstat[0].equals(idmovestra))
                        {
                            encontrado=1;
                             switch (opcionesestadistica)
                                    {
                                        case 1:
                                                jtable_modelo_movextras.setValueAt(miformat.format(Float.valueOf(cantidad)),ii ,columna);
                                        break;
                                        case 2:
                                                jtable_modelo_movextras.setValueAt(miformat.format(Float.valueOf(importecosto)),ii ,columna);
                                        break;
                                        case 3:
                                                jtable_modelo_movextras.setValueAt(miformat.format(Float.valueOf(importeprecio)),ii ,columna);
                                        break;
                                        case 0:
                                                jtable_modelo_movextras.setValueAt("<html><b>"+miformat.format(Float.valueOf(cantidad))+"<br>"+miformat.format(Float.valueOf(importecosto))+"<br>"+miformat.format(Float.valueOf(importeprecio))+"</b></html>",ii ,columna);
                                        break;
                                    }
                            
                        }
                }
       if(encontrado==0)
            {
            fnewRow[0]=idmovestra+":"+describestatus+":";
            for( ii=1;ii<numerocolumnas;ii++)
                {
                               //System.out.println(idmovestra+":"+describestatus);
                               if(ii==columna)
                                    {
                                         switch (opcionesestadistica)
                                                {
                                                    case 1:
                                                            fnewRow[ii]=miformat.format(Float.valueOf(cantidad));
                                                    break;
                                                    case 2:
                                                            fnewRow[ii]=miformat.format(Float.valueOf(importecosto));
                                                    break;
                                                    case 3:
                                                            fnewRow[ii]=miformat.format(Float.valueOf(importeprecio));
                                                    break;
                                                    case 0:
                                                            fnewRow[ii]="<html><b>"+miformat.format(Float.valueOf(cantidad))+"<br>"+miformat.format(Float.valueOf(importecosto))+"<br>"+miformat.format(Float.valueOf(importeprecio))+"</b></html>";
                                                    break;
                                                }
                                        
                                    }
                               else
                                    {
                                        if(opcionesestadistica==0)
                                            {
                                                fnewRow[ii]="<html><b>"+"0"+"<br>"+"0"+"<br>"+"0"+"</b></html>";
                                            }
                                        else
                                            {
                                                fnewRow[ii]="0";
                                            }
                                        
                                    }
                }
             jtable_modelo_movextras.addRow(fnewRow);
            }
    }
private void crea_hoja_movimientostadisdetalle(String idmes,String describestatus,String cantidad,String importecosto,String importeprecio,int columna)
    {
        DecimalFormat miformat = new DecimalFormat("###,###,###");
        int numerofilas=this.jtable_modelo_movextrasdetalle.getRowCount();
        String idstat="";
        int numerocolumnas=this.jtable_modelo_movextrasdetalle.getColumnCount(),ii=00;
        int encontrado=0;
        Object[] fnewRow = new Object[numerocolumnas];
        //invoco al metodo que trae el recordset de datos
        for( ii=0;ii<numerofilas;ii++)
                {
                    idstat=jtable_modelo_movextrasdetalle.getValueAt(ii, 0).toString();
                   // System.out.println("Agregando:"+Float.valueOf(cantidad)+" "+idmes);
                    if (idstat.equals(idmes))
                        {
                            encontrado=1;
                             switch (opcionesestadisticad)
                                    {
                                        case 1:
                                                jtable_modelo_movextrasdetalle.setValueAt(miformat.format(Float.valueOf(cantidad)),ii ,columna);
                                        break;
                                        case 2:
                                                jtable_modelo_movextrasdetalle.setValueAt(miformat.format(Float.valueOf(importecosto)),ii ,columna);
                                        break;
                                        case 3:
                                                jtable_modelo_movextrasdetalle.setValueAt(miformat.format(Float.valueOf(importeprecio)),ii ,columna);
                                        break;
                                        case 0:
                                                jtable_modelo_movextrasdetalle.setValueAt("<html><b>"+miformat.format(Float.valueOf(cantidad))+"<br>"+miformat.format(Float.valueOf(importecosto))+"<br>"+miformat.format(Float.valueOf(importeprecio))+"</b></html>",ii ,columna);
                                        break;
                                    }

                        }
                }
       if(encontrado==0)
            {
            fnewRow[0]=idmes;
            for( ii=1;ii<numerocolumnas;ii++)
                {
                               //System.out.println(idmes+":"+describestatus);
                               if(ii==columna)
                                    {
                                         switch (opcionesestadisticad)
                                                {
                                                    case 1:
                                                            fnewRow[ii]=miformat.format(Float.valueOf(cantidad));
                                                    break;
                                                    case 2:
                                                            fnewRow[ii]=miformat.format(Float.valueOf(importecosto));
                                                    break;
                                                    case 3:
                                                            fnewRow[ii]=miformat.format(Float.valueOf(importeprecio));
                                                    break;
                                                    case 0:
                                                            fnewRow[ii]="<html><b>"+miformat.format(Float.valueOf(cantidad))+"<br>"+miformat.format(Float.valueOf(importecosto))+"<br>"+miformat.format(Float.valueOf(importeprecio))+"</b></html>";
                                                    break;
                                                }
                                    }
                               else
                                    {
                                        if(opcionesestadisticad==0)
                                            {
                                                fnewRow[ii]="<html><b>"+"0"+"<br>"+"0"+"<br>"+"0"+"</b></html>";
                                            }
                                        else
                                            {
                                                fnewRow[ii]="0";
                                            }

                                    }
                }
             jtable_modelo_movextrasdetalle.addRow(fnewRow);
            }
    }

private void crea_hoja_moviresumenxfamilia(String idstatus,String describestatus,String cantidad,String costo,String precio,int columna)
    {
        DecimalFormat miformat = new DecimalFormat("###,###,###");
        int numerofilas=this.jtable_modelo_movextrasxfamilia.getRowCount();
        String idstat[]=null;
        int numerocolumnas=this.jtable_modelo_movextrasxfamilia.getColumnCount(),ii=00;
        int encontrado=0;
        Object[] fnewRow = new Object[numerocolumnas];
        float cantistatus=0,ccantidad=0,cimportecosto=0,cimporteprecio=0,tcanti=0;
       //invoco al metodo que trae el recordset de datos
        cantistatus=Float.valueOf(cantidad);
        for( ii=0;ii<numerofilas;ii++)
                {
                    idstat=jtable_modelo_movextrasxfamilia.getValueAt(ii, 0).toString().split(":");
                   // System.out.println("Agregando:"+cantistatus+" "+idstatus);
                    if (idstat[0].equals(idstatus))
                        {
                            encontrado=1;
                            
                            ccantidad=Float.valueOf(jtable_modelo_movextrasxfamilia.getValueAt(ii,1).toString().replace(",","").replace(".",""))+Float.valueOf(cantidad);
                            jtable_modelo_movextrasxfamilia.setValueAt(miformat.format(ccantidad),ii ,1);
                            cimportecosto=Float.valueOf(jtable_modelo_movextrasxfamilia.getValueAt(ii,2).toString().replace(",","").replace(".",""))+Float.valueOf(costo);
                            jtable_modelo_movextrasxfamilia.setValueAt(miformat.format(cimportecosto),ii ,2);
                            cimporteprecio=Float.valueOf(jtable_modelo_movextrasxfamilia.getValueAt(ii,3).toString().replace(",","").replace(".",""))+Float.valueOf(precio);
                            jtable_modelo_movextrasxfamilia.setValueAt(miformat.format(cimporteprecio),ii ,3);
                            tcanti+=ccantidad;
                        }
                     //System.out.println("viendo totales:"+tcanti+" y encontrando error ");
                }
       if(encontrado==0)
            {
                fnewRow[0]=idstatus+":"+describestatus;
                fnewRow[1]=miformat.format(Float.valueOf(cantidad));
                fnewRow[2]=miformat.format(Float.valueOf(costo));
                fnewRow[3]=miformat.format(Float.valueOf(precio));
                jtable_modelo_movextrasxfamilia.addRow(fnewRow);
            }
    }

private void crea_hoja_moviresumenxsubfamilia(String idstatus,String describestatus,String cantidad,String costo,String precio,int columna)
    {
        DecimalFormat miformat = new DecimalFormat("###,###,###");
        int numerofilas=this.jtable_modelo_movextrasxsubfam.getRowCount();
        String idstat[]=null;
        int numerocolumnas=this.jtable_modelo_movextrasxsubfam.getColumnCount(),ii=00;
        int encontrado=0;
        Object[] fnewRow = new Object[numerocolumnas];
        float cantistatus=0,ccantidad=0,cimportecosto=0,cimporteprecio=0;
       //invoco al metodo que trae el recordset de datos
        cantistatus=Float.valueOf(cantidad);
        for( ii=0;ii<numerofilas;ii++)
                {
                    idstat=jtable_modelo_movextrasxsubfam.getValueAt(ii, 0).toString().split(":");
                    //System.out.println("Agregando:"+cantistatus+" "+idstatus);
                    if (idstat[0].equals(idstatus))
                        {
                            encontrado=1;
                            //System.out.println("viendo totales:"+jtable_modelo_movextrasxsubfam.getValueAt(ii,0).toString()+" "+jtable_modelo_movextrasxsubfam.getValueAt(ii,1).toString().replace(",","").replace(".","")+0);
                            ccantidad=Float.valueOf(jtable_modelo_movextrasxsubfam.getValueAt(ii,1).toString().replace(",","").replace(".",""))+Float.valueOf(cantidad);
                            jtable_modelo_movextrasxsubfam.setValueAt(miformat.format(ccantidad),ii ,1);
                            cimportecosto=Float.valueOf(jtable_modelo_movextrasxsubfam.getValueAt(ii,2).toString().replace(",","").replace(".",""))+Float.valueOf(costo);
                            jtable_modelo_movextrasxsubfam.setValueAt(miformat.format(cimportecosto),ii ,2);
                            cimporteprecio=Float.valueOf(jtable_modelo_movextrasxsubfam.getValueAt(ii,3).toString().replace(",","").replace(".",""))+Float.valueOf(precio);
                            jtable_modelo_movextrasxsubfam.setValueAt(miformat.format(cimporteprecio),ii ,3);
                        }
                }
       if(encontrado==0)
            {
                fnewRow[0]=idstatus+":"+describestatus;
                fnewRow[1]=miformat.format(Float.valueOf(cantidad));
                fnewRow[2]=miformat.format(Float.valueOf(costo));
                fnewRow[3]=miformat.format(Float.valueOf(precio));
                jtable_modelo_movextrasxsubfam.addRow(fnewRow);
            }
    }

private void carga_datos_stadisticasxmovi()
    {
       String fechaeuro="";
       int columnatitulo=0;
       this.LimpiarJTable_movextraesta();
       String mespartido[]=null;
        int ncol=this.jtable_modelo_movextras.getColumnCount();
       Object[] fnewRow = new Object[ncol];
       rs = x.sieuno_executediversosv2("select * from x1sieuno_articulo_almacen_movextras_estadis(0) as (id integer,cantidad real,importeprecio real,importecosto real,movimientosextr text);",variables_global.getconexiongral());
        try
        {
            while (rs.next())
                {
                        mespartido=rs.getString("movimientosextr").split(":");
                        columnatitulo=this.findcolumna_idtienda(mespartido[2]);
                        this.crea_hoja_movimientostadis(rs.getString("id"), mespartido[1].toUpperCase(),rs.getString("cantidad"),rs.getString("importecosto"),rs.getString("importeprecio"),columnatitulo);
                }
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
     fnewRow[0]="Totales:";
     jtable_modelo_movextras.addRow(fnewRow);
     if(opcionesestadistica==0)
            {
                this.cambiartamanofilas_movesta();
            }
    this.contruir_totalesmov();
     }
private void carga_datos_stadisticasxmovidetalle(int opcion,String tienda,String busqueda)
    {
       String fechaeuro="";
       int columnatitulo=0;
       this.LimpiarJTable_movextraestadeta();
       String mespartido[]=null;
       int ncol=this.jtable_modelo_movextrasdetalle.getColumnCount();
       Object[] fnewRow = new Object[ncol];
       rs = x.sieuno_executediversosv2("select * from x1sieuno_articulo_almacen_movextras_est_detalle("+opcion+","+tienda+",'"+busqueda+"') as (fe date,id integer,fechaenmes text,cantidad real,importeprecio real,importecosto real,movimientosextr text);",variables_global.getconexiongral());
       try
            {
            while (rs.next())
                {
                        mespartido=rs.getString("fechaenmes").split(":");
                        columnatitulo=this.findcolumna_idtienda(mespartido[0]);
                        this.crea_hoja_movimientostadisdetalle(mespartido[1], mespartido[1].toUpperCase(),rs.getString("cantidad"),rs.getString("importecosto"),rs.getString("importeprecio"),columnatitulo);
                }
            }
        catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
     fnewRow[0]="Totales:";
     jtable_modelo_movextrasdetalle.addRow(fnewRow);
     if(opcionesestadisticad==0)
            {
               this.cambiartamanofilas_movestadeta();
            }
    this.contruir_totalesmovdeta();
     }
private void carga_datos_stadisticaxmovidefamilia(int opcion,String busqueda)
    {
       String fechaeuro="";
       int columnatitulo=0;
       this.LimpiarJTable_movextraresfami();
       String mespartido[]=null;
       int ncol=this.jtable_modelo_movextrasxfamilia.getColumnCount();
       Object[] fnewRow = new Object[ncol];
       rs = x.sieuno_executediversosv2("select * from x1sieuno_articulo_almacen_movextras_estaxfamilia("+opcion+",'"+busqueda+"') as (cantidad real,importeprecio real,importecosto real,idfamilia integer,nombrefam text,idcatmov integer);",variables_global.getconexiongral());
       try
            {
            while (rs.next())
                {
                        mespartido=rs.getString("nombrefam").split(":");
                        //columnatitulo=this.findcolumna_idtienda(mespartido[0]);
                        this.crea_hoja_moviresumenxfamilia(rs.getString("idfamilia"),mespartido[1],rs.getString("cantidad"),rs.getString("importecosto"),rs.getString("importeprecio"),0);
                }
            }
        catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
     fnewRow[0]="Totales:";
     jtable_modelo_movextrasxfamilia.addRow(fnewRow);
     this.contruir_totalesmovixfam();
     
     }
private void carga_datos_stadisticaxmovidesufamilia(int opcion,String busqueda)
    {
       String fechaeuro="";
       int columnatitulo=0;
       this.LimpiarJTable_movextraressubfami();
       String mespartido[]=null,nombre="";
       int ncol=this.jtable_modelo_movextrasxsubfam.getColumnCount();
       Object[] fnewRow = new Object[ncol];
       rs = x.sieuno_executediversosv2("select * from x1sieuno_articulo_almacen_movextras_estaxsubfami("+opcion+",'"+busqueda+"') as (cantidad real,importeprecio real,importecosto real,idsubfamilia integer,nombresubfam text,idcatmov integer);",variables_global.getconexiongral());
       try
            {
            while (rs.next())
                {
                    if(rs.getString("nombresubfam")!=null)
                            {
                                mespartido=rs.getString("nombresubfam").split(":");
                                nombre=mespartido[1];
                            }
                        else
                            {
                                System.out.println("cachando nulo"+mespartido.length);
                                nombre="vacio";
                            }

                        
                        
                        //columnatitulo=this.findcolumna_idtienda(mespartido[0]);
                        this.crea_hoja_moviresumenxsubfamilia(rs.getString("idsubfamilia"),nombre+"",rs.getString("cantidad"),rs.getString("importecosto"),rs.getString("importeprecio"),0);
                }
            }
        catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
     fnewRow[0]="Totales:";
     jtable_modelo_movextrasxsubfam.addRow(fnewRow);
     this.contruir_totalesmovixsubfam();
     }
void LimpiarJTable_movextraesta()
    {
     //limpiar la tabla
        while(jtable_modelo_movextras.getRowCount()>0)jtable_modelo_movextras.removeRow(0);
    }
void LimpiarJTable_movextraestadeta()
    {
     //limpiar la tabla
        while(jtable_modelo_movextrasdetalle.getRowCount()>0)jtable_modelo_movextrasdetalle.removeRow(0);
    }
void LimpiarJTable_movextraresfami()
    {
     //limpiar la tabla
        while(jtable_modelo_movextrasxfamilia.getRowCount()>0)jtable_modelo_movextrasxfamilia.removeRow(0);
    }
void LimpiarJTable_movextraressubfami()
    {
     //limpiar la tabla
        while(jtable_modelo_movextrasxsubfam.getRowCount()>0)jtable_modelo_movextrasxsubfam.removeRow(0);
    }
void cambiartamanofilas_movesta()
 {
     //limpiar la tabla


       int numerofilas=this.jtable_modelo_movextras.getRowCount();

             for(int i = 0 ;i < numerofilas; i++)
                {
                     jt_acumuladoxmovimientos.setRowHeight(i, 50);
                }
  }
void cambiartamanofilas_movestadeta()
 {
     //limpiar la tabla


       int numerofilas=this.jtable_modelo_movextrasdetalle.getRowCount();

             for(int i = 0 ;i < numerofilas; i++)
                {
                     jt_acumuadoxtiendadetalle.setRowHeight(i, 50);
                }
  }
void cambiartamanofilas_movestadet()
 {
     //limpiar la tabla


       int numerofilas=this.jtable_modelo_movextras.getRowCount();

             for(int i = 0 ;i < numerofilas; i++)
                {
                     jt_acumuladoxmovimientos.setRowHeight(i, 50);
                }
  }
private void contruir_totalesmov()
    {
         DecimalFormat myFormatter = new DecimalFormat("###,###,###");
         float totalve=0,totalvec=0,totalvep=0;
         int totalfilasreporte=this.jtable_modelo_movextras.getRowCount()-1,i=0,ii=0;
         int numerotiendas=this.jtable_modelo_movextras.getColumnCount()-2;
         String cadenavalores[]=null; 
         //genero los totales por tienda
         if(opcionesestadistica==0)
            {
            for( ii=0;ii<numerotiendas;ii++)
                {
                    totalve=0;
                    for(i=0;i<totalfilasreporte;i++)
                        {
                            cadenavalores=jtable_modelo_movextras.getValueAt(i, ii+1).toString().replace(",","").replace(".","").replace("<html><b>", "").replace("</b></html>", "").split("<br>");
                            totalve+=Float.valueOf(cadenavalores[0]);
                            totalvec+=Float.valueOf(cadenavalores[1]);
                            totalvep+=Float.valueOf(cadenavalores[2]);
                        }
                    jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"<br>"+myFormatter.format(totalvec)+"<br>"+myFormatter.format(totalvep)+"</b></h3></html>",i,ii+1);
                }
           totalve=0;
           totalvec=0;
           totalvep=0;
           for(i=0;i<totalfilasreporte;i++)
                    {
                        for( ii=0;ii<numerotiendas;ii++)
                        {
                            //totalve+=Float.valueOf(jtable_modelo_movextras.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                            cadenavalores=jtable_modelo_movextras.getValueAt(i, ii+1).toString().replace(",","").replace(".","").replace("<html><b>", "").replace("</b></html>", "").split("<br>");
                            totalve+=Float.valueOf(cadenavalores[0]);
                            totalvec+=Float.valueOf(cadenavalores[1]);
                            totalvep+=Float.valueOf(cadenavalores[2]);
                        }

                        //jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                        jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"<br>"+myFormatter.format(totalvec)+"<br>"+myFormatter.format(totalvep)+"</b></h3></html>",i,ii+1);
                        totalve=0;
                        totalvec=0;
                        totalvep=0;
                    }
           //solo totales
           for(i=0;i<totalfilasreporte;i++)
                    {
                            cadenavalores=jtable_modelo_movextras.getValueAt(i, numerotiendas+1).toString().replace(",","").replace(".","").replace("<html><h3><b>", "").replace("</b></h3></html>", "").split("<br>");
                            totalve+=Float.valueOf(cadenavalores[0]);
                            totalvec+=Float.valueOf(cadenavalores[1]);
                            totalvep+=Float.valueOf(cadenavalores[2]);
                    }
           jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"<br>"+myFormatter.format(totalvec)+"<br>"+myFormatter.format(totalvep)+"</b></h3></html>",i,numerotiendas+1);

                }
         else
            {
                for( ii=0;ii<numerotiendas;ii++)
                    {
                        totalve=0;
                        for(i=0;i<totalfilasreporte;i++)
                            {
                            totalve+=Float.valueOf(jtable_modelo_movextras.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                            }
                        jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                    }
               totalve=0;
                for(i=0;i<totalfilasreporte;i++)
                  {
                        for( ii=0;ii<numerotiendas;ii++)
                        {
                            totalve+=Float.valueOf(jtable_modelo_movextras.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                        }
                        jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                        totalve=0;
                  }
                for(i=0;i<totalfilasreporte;i++)
                        {
                            totalve+=Float.valueOf(jtable_modelo_movextras.getValueAt(i, numerotiendas+1).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
                        }
                        jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,numerotiendas+1);
            }
     }
private void contruir_totalesmovdeta()
    {
         DecimalFormat myFormatter = new DecimalFormat("###,###,###");
         float totalve=0,totalvec=0,totalvep=0;
         int totalfilasreporte=this.jtable_modelo_movextrasdetalle.getRowCount()-1,i=0,ii=0;
         int numerotiendas=this.jtable_modelo_movextrasdetalle.getColumnCount()-2;
         String cadenavalores[]=null;
         //genero los totales por tienda
         if(opcionesestadisticad==0)
            {
                         for( ii=0;ii<numerotiendas;ii++)
                {
                    totalve=0;
                    for(i=0;i<totalfilasreporte;i++)
                        {
                            cadenavalores=jtable_modelo_movextrasdetalle.getValueAt(i, ii+1).toString().replace(",","").replace(".","").replace("<html><b>", "").replace("</b></html>", "").split("<br>");
                            totalve+=Float.valueOf(cadenavalores[0]);
                            totalvec+=Float.valueOf(cadenavalores[1]);
                            totalvep+=Float.valueOf(cadenavalores[2]);
                        }
                    jtable_modelo_movextrasdetalle.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"<br>"+myFormatter.format(totalvec)+"<br>"+myFormatter.format(totalvep)+"</b></h3></html>",i,ii+1);
                }
           totalve=0;
           totalvec=0;
           totalvep=0;
           for(i=0;i<totalfilasreporte;i++)
                    {
                        for( ii=0;ii<numerotiendas;ii++)
                        {
                            //totalve+=Float.valueOf(jtable_modelo_movextras.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                            cadenavalores=jtable_modelo_movextrasdetalle.getValueAt(i, ii+1).toString().replace(",","").replace(".","").replace("<html><b>", "").replace("</b></html>", "").split("<br>");
                            totalve+=Float.valueOf(cadenavalores[0]);
                            totalvec+=Float.valueOf(cadenavalores[1]);
                            totalvep+=Float.valueOf(cadenavalores[2]);
                        }

                        //jtable_modelo_movextras.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                        jtable_modelo_movextrasdetalle.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"<br>"+myFormatter.format(totalvec)+"<br>"+myFormatter.format(totalvep)+"</b></h3></html>",i,ii+1);
                        totalve=0;
                        totalvec=0;
                        totalvep=0;
                    }

                }
         else
            {
                for( ii=0;ii<numerotiendas;ii++)
                    {
                        totalve=0;
                        for(i=0;i<totalfilasreporte;i++)
                            {
                            totalve+=Float.valueOf(jtable_modelo_movextrasdetalle.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                            }
                        jtable_modelo_movextrasdetalle.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                    }
               totalve=0;
                for(i=0;i<totalfilasreporte;i++)
                  {
                        for( ii=0;ii<numerotiendas;ii++)
                        {
                            totalve+=Float.valueOf(jtable_modelo_movextrasdetalle.getValueAt(i, ii+1).toString().replace(",","").replace(".",""));
                        }
                        jtable_modelo_movextrasdetalle.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,ii+1);
                        totalve=0;
                  }
               for(i=0;i<totalfilasreporte;i++)
                        {
                            totalve+=Float.valueOf(jtable_modelo_movextrasdetalle.getValueAt(i, numerotiendas+1).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
                        }
                        jtable_modelo_movextrasdetalle.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,numerotiendas+1);
            }
     }

private void contruir_totalesmovixfam()
    {
         DecimalFormat myFormatter = new DecimalFormat("###,###,###");
         float totalve=0,totalvec=0,totalvep=0;
         int totalfilasreporte=this.jtable_modelo_movextrasxfamilia.getRowCount()-1,i=0,ii=0;
        
         String cadenavalores[]=null;
         //genero los totales por tienda
         for(i=0;i<totalfilasreporte;i++)
             {
                 totalve+=Float.valueOf(jtable_modelo_movextrasxfamilia.getValueAt(i, 1).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
                 totalvec+=Float.valueOf(jtable_modelo_movextrasxfamilia.getValueAt(i, 2).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
                 totalvep+=Float.valueOf(jtable_modelo_movextrasxfamilia.getValueAt(i, 3).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
             }
        jtable_modelo_movextrasxfamilia.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,1);
        jtable_modelo_movextrasxfamilia.setValueAt("<html><h3><b>"+myFormatter.format(totalvec)+"</b></h3></html>",i,2);
        jtable_modelo_movextrasxfamilia.setValueAt("<html><h3><b>"+myFormatter.format(totalvep)+"</b></h3></html>",i,3);

     }
private void contruir_totalesmovixsubfam()
    {
         DecimalFormat myFormatter = new DecimalFormat("###,###,###");
         float totalve=0,totalvec=0,totalvep=0;
         int totalfilasreporte=this.jtable_modelo_movextrasxsubfam.getRowCount()-1,i=0,ii=0;

         String cadenavalores[]=null;
         //genero los totales por tienda
         for(i=0;i<totalfilasreporte;i++)
             {
                 totalve+=Float.valueOf(jtable_modelo_movextrasxsubfam.getValueAt(i, 1).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
                 totalvec+=Float.valueOf(jtable_modelo_movextrasxsubfam.getValueAt(i, 2).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
                 totalvep+=Float.valueOf(jtable_modelo_movextrasxsubfam.getValueAt(i, 3).toString().replace(",","").replace(".","").replace("<html><h3><b>","").replace("</b></h3></html>",""));
             }
        jtable_modelo_movextrasxsubfam.setValueAt("<html><h3><b>"+myFormatter.format(totalve)+"</b></h3></html>",i,1);
        jtable_modelo_movextrasxsubfam.setValueAt("<html><h3><b>"+myFormatter.format(totalvec)+"</b></h3></html>",i,2);
        jtable_modelo_movextrasxsubfam.setValueAt("<html><h3><b>"+myFormatter.format(totalvep)+"</b></h3></html>",i,3);

     }
 private void jt_acumuladoxfamiliaMouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        buttonGroup2 = new javax.swing.ButtonGroup();
        jPanel6 = new javax.swing.JPanel();
        jScrollPane5 = new javax.swing.JScrollPane();
        jt_acumuladoxmovimientos = new javax.swing.JTable()
        {
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        }
        ;
        jrbtn_piezas = new javax.swing.JRadioButton();
        jrbtn_costo = new javax.swing.JRadioButton();
        jrbtn_precio = new javax.swing.JRadioButton();
        jrbtn_todos = new javax.swing.JRadioButton();
        jLabel1 = new javax.swing.JLabel();
        jbtn_generareporte = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane6 = new javax.swing.JScrollPane();
        jt_acumuadoxtiendadetalle = new javax.swing.JTable()
        {
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        }
        ;
        jLabel2 = new javax.swing.JLabel();
        jtf_descripcionmovimientos = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jrbtn_piezasd = new javax.swing.JRadioButton();
        jrbtn_costod = new javax.swing.JRadioButton();
        jrbtn_preciod = new javax.swing.JRadioButton();
        jrbtn_todosd = new javax.swing.JRadioButton();
        jbtn_generareportedeta = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane7 = new javax.swing.JScrollPane();
        jt_acumuladoxfamilia = new javax.swing.JTable()
        {
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        }
        ;
        jLabel4 = new javax.swing.JLabel();
        jtf_descripcionmovimientosfam = new javax.swing.JTextField();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane8 = new javax.swing.JScrollPane();
        jt_acumuladoxsubfam = new javax.swing.JTable()
        {
            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        }
        ;
        jtf_descripcionmovimientossubfam = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jmni_salir = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jmni_escape = new javax.swing.JMenuItem();
        jmni_actualizar = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(sie_invdis.Sie_invdisApp.class).getContext().getResourceMap(articulos_sie_almacen_movi_estadis.class);
        setTitle(resourceMap.getString("Form.title")); // NOI18N
        setName("Form"); // NOI18N

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel6.border.title"))); // NOI18N
        jPanel6.setName("jPanel6"); // NOI18N

        jScrollPane5.setName("jScrollPane5"); // NOI18N

        jt_acumuladoxmovimientos.setModel(this.jtable_modelo_movextras);
        jt_acumuladoxmovimientos.setName("jt_acumuladoxmovimientos"); // NOI18N
        jt_acumuladoxmovimientos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jt_acumuladoxmovimientosMouseClicked(evt);
                if(evt.getClickCount() >= 2)
                {
                    dioclick(evt);
                    //System.out.println(" double click" );
                }
            }
        });
        jScrollPane5.setViewportView(jt_acumuladoxmovimientos);

        buttonGroup1.add(jrbtn_piezas);
        jrbtn_piezas.setText(resourceMap.getString("jrbtn_piezas.text")); // NOI18N
        jrbtn_piezas.setActionCommand(resourceMap.getString("jrbtn_piezas.actionCommand")); // NOI18N
        jrbtn_piezas.setName("jrbtn_piezas"); // NOI18N
        jrbtn_piezas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_piezasActionPerformed(evt);
            }
        });

        buttonGroup1.add(jrbtn_costo);
        jrbtn_costo.setText(resourceMap.getString("jrbtn_costo.text")); // NOI18N
        jrbtn_costo.setActionCommand(resourceMap.getString("jrbtn_costo.actionCommand")); // NOI18N
        jrbtn_costo.setName("jrbtn_costo"); // NOI18N
        jrbtn_costo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_costoActionPerformed(evt);
            }
        });

        buttonGroup1.add(jrbtn_precio);
        jrbtn_precio.setText(resourceMap.getString("jrbtn_precio.text")); // NOI18N
        jrbtn_precio.setActionCommand(resourceMap.getString("jrbtn_precio.actionCommand")); // NOI18N
        jrbtn_precio.setName("jrbtn_precio"); // NOI18N
        jrbtn_precio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_precioActionPerformed(evt);
            }
        });

        buttonGroup1.add(jrbtn_todos);
        jrbtn_todos.setText(resourceMap.getString("jrbtn_todos.text")); // NOI18N
        jrbtn_todos.setActionCommand(resourceMap.getString("jrbtn_todos.actionCommand")); // NOI18N
        jrbtn_todos.setName("jrbtn_todos"); // NOI18N
        jrbtn_todos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_todosActionPerformed(evt);
            }
        });

        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jbtn_generareporte.setIcon(resourceMap.getIcon("jbtn_generareporte.icon")); // NOI18N
        jbtn_generareporte.setText(resourceMap.getString("jbtn_generareporte.text")); // NOI18N
        jbtn_generareporte.setName("jbtn_generareporte"); // NOI18N
        jbtn_generareporte.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtn_generareporteActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jrbtn_piezas)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jrbtn_costo)
                .addGap(13, 13, 13)
                .addComponent(jrbtn_precio)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jrbtn_todos)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jbtn_generareporte))
            .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 712, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jrbtn_piezas)
                    .addComponent(jrbtn_costo)
                    .addComponent(jrbtn_precio)
                    .addComponent(jrbtn_todos)
                    .addComponent(jbtn_generareporte))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE))
        );

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel1.border.title"))); // NOI18N
        jPanel1.setName("jPanel1"); // NOI18N

        jScrollPane6.setName("jScrollPane6"); // NOI18N

        jt_acumuadoxtiendadetalle.setModel(this.jtable_modelo_movextrasdetalle);
        jt_acumuadoxtiendadetalle.setName("jt_acumuadoxtiendadetalle"); // NOI18N
        jScrollPane6.setViewportView(jt_acumuadoxtiendadetalle);

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        jtf_descripcionmovimientos.setEditable(false);
        jtf_descripcionmovimientos.setFont(resourceMap.getFont("jtf_descripcionmovimientos.font")); // NOI18N
        jtf_descripcionmovimientos.setText(resourceMap.getString("jtf_descripcionmovimientos.text")); // NOI18N
        jtf_descripcionmovimientos.setName("jtf_descripcionmovimientos"); // NOI18N

        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        buttonGroup2.add(jrbtn_piezasd);
        jrbtn_piezasd.setText(resourceMap.getString("jrbtn_piezasd.text")); // NOI18N
        jrbtn_piezasd.setActionCommand(resourceMap.getString("jrbtn_piezasd.actionCommand")); // NOI18N
        jrbtn_piezasd.setName("jrbtn_piezasd"); // NOI18N
        jrbtn_piezasd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_piezasdActionPerformed(evt);
            }
        });

        buttonGroup2.add(jrbtn_costod);
        jrbtn_costod.setText(resourceMap.getString("jrbtn_costod.text")); // NOI18N
        jrbtn_costod.setActionCommand(resourceMap.getString("jrbtn_costod.actionCommand")); // NOI18N
        jrbtn_costod.setName("jrbtn_costod"); // NOI18N
        jrbtn_costod.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_costodActionPerformed(evt);
            }
        });

        buttonGroup2.add(jrbtn_preciod);
        jrbtn_preciod.setText(resourceMap.getString("jrbtn_preciod.text")); // NOI18N
        jrbtn_preciod.setActionCommand(resourceMap.getString("jrbtn_preciod.actionCommand")); // NOI18N
        jrbtn_preciod.setName("jrbtn_preciod"); // NOI18N
        jrbtn_preciod.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_preciodActionPerformed(evt);
            }
        });

        buttonGroup2.add(jrbtn_todosd);
        jrbtn_todosd.setText(resourceMap.getString("jrbtn_todosd.text")); // NOI18N
        jrbtn_todosd.setActionCommand(resourceMap.getString("jrbtn_todosd.actionCommand")); // NOI18N
        jrbtn_todosd.setName("jrbtn_todosd"); // NOI18N
        jrbtn_todosd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbtn_todosdActionPerformed(evt);
            }
        });

        jbtn_generareportedeta.setText(resourceMap.getString("jbtn_generareportedeta.text")); // NOI18N
        jbtn_generareportedeta.setName("jbtn_generareportedeta"); // NOI18N
        jbtn_generareportedeta.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtn_generareportedetaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jtf_descripcionmovimientos, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jrbtn_piezasd)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jrbtn_costod)
                .addGap(13, 13, 13)
                .addComponent(jrbtn_preciod)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jrbtn_todosd)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jbtn_generareportedeta))
            .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 707, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jtf_descripcionmovimientos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(2, 2, 2))
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel3)
                        .addComponent(jrbtn_piezasd)
                        .addComponent(jrbtn_costod)
                        .addComponent(jrbtn_preciod)
                        .addComponent(jrbtn_todosd)
                        .addComponent(jbtn_generareportedeta)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 224, Short.MAX_VALUE))
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel2.border.title"))); // NOI18N
        jPanel2.setName("jPanel2"); // NOI18N

        jScrollPane7.setName("jScrollPane7"); // NOI18N

        jt_acumuladoxfamilia.setModel(this.jtable_modelo_movextrasxfamilia);
        jt_acumuladoxfamilia.setName("jt_acumuladoxfamilia"); // NOI18N
        jt_acumuladoxfamilia.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jt_acumuladoxfamiliaMouseClicked(evt);
                if(evt.getClickCount() >= 2)
                {
                    dioclickfam(evt);
                    //System.out.println(" double click" );
                }

            }
        });
        jScrollPane7.setViewportView(jt_acumuladoxfamilia);

        jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N
        jLabel4.setName("jLabel4"); // NOI18N

        jtf_descripcionmovimientosfam.setEditable(false);
        jtf_descripcionmovimientosfam.setFont(resourceMap.getFont("jtf_descripcionmovimientosfam.font")); // NOI18N
        jtf_descripcionmovimientosfam.setName("jtf_descripcionmovimientosfam"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jtf_descripcionmovimientosfam, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE)
                .addContainerGap())
            .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jtf_descripcionmovimientosfam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(10, 10, 10)
                .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE))
        );

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel3.border.title"))); // NOI18N
        jPanel3.setName("jPanel3"); // NOI18N

        jScrollPane8.setName("jScrollPane8"); // NOI18N

        jt_acumuladoxsubfam.setModel(this.jtable_modelo_movextrasxsubfam);
        jt_acumuladoxsubfam.setName("jt_acumuladoxsubfam"); // NOI18N
        jt_acumuladoxsubfam.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jt_acumuladoxsubfamMouseClicked(evt);
                if(evt.getClickCount() >= 2)
                {
                    dioclicksubfam(evt);
                    //System.out.println(" double click" );
                }
            }
        });
        jScrollPane8.setViewportView(jt_acumuladoxsubfam);

        jtf_descripcionmovimientossubfam.setEditable(false);
        jtf_descripcionmovimientossubfam.setFont(resourceMap.getFont("jtf_descripcionmovimientossubfam.font")); // NOI18N
        jtf_descripcionmovimientossubfam.setName("jtf_descripcionmovimientossubfam"); // NOI18N

        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jtf_descripcionmovimientossubfam, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE)
                .addContainerGap())
            .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(jtf_descripcionmovimientossubfam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(10, 10, 10)
                .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE))
        );

        jMenuBar1.setName("jMenuBar1"); // NOI18N

        jMenu1.setText(resourceMap.getString("jMenu1.text")); // NOI18N
        jMenu1.setName("jMenu1"); // NOI18N

        jmni_salir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK));
        jmni_salir.setIcon(resourceMap.getIcon("jmni_salir.icon")); // NOI18N
        jmni_salir.setText(resourceMap.getString("jmni_salir.text")); // NOI18N
        jmni_salir.setName("jmni_salir"); // NOI18N
        jmni_salir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmni_salirActionPerformed(evt);
            }
        });
        jMenu1.add(jmni_salir);

        jMenuBar1.add(jMenu1);

        jMenu2.setText(resourceMap.getString("jMenu2.text")); // NOI18N
        jMenu2.setName("jMenu2"); // NOI18N

        jmni_escape.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0));
        jmni_escape.setText(resourceMap.getString("jmni_escape.text")); // NOI18N
        jmni_escape.setName("jmni_escape"); // NOI18N
        jmni_escape.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmni_escapeActionPerformed(evt);
            }
        });
        jMenu2.add(jmni_escape);

        jmni_actualizar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
        jmni_actualizar.setText(resourceMap.getString("jmni_actualizar.text")); // NOI18N
        jmni_actualizar.setName("jmni_actualizar"); // NOI18N
        jmni_actualizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmni_actualizarActionPerformed(evt);
            }
        });
        jMenu2.add(jmni_actualizar);

        jMenuBar1.add(jMenu2);

        jMenu3.setText(resourceMap.getString("jMenu3.text")); // NOI18N
        jMenu3.setName("jMenu3"); // NOI18N
        jMenuBar1.add(jMenu3);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(6, 6, 6))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jmni_salirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_salirActionPerformed
        // TODO add your handling code here:
        this.dispose();
    }//GEN-LAST:event_jmni_salirActionPerformed

    private void jmni_escapeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_escapeActionPerformed
        // TODO add your handling code here:
        this.jmni_salirActionPerformed(evt);
    }//GEN-LAST:event_jmni_escapeActionPerformed

    private void jrbtn_todosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_todosActionPerformed
        // TODO add your handling code here:
          opcionesestadistica=Integer.parseInt(evt.getActionCommand().toString());
    }//GEN-LAST:event_jrbtn_todosActionPerformed

    private void jrbtn_piezasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_piezasActionPerformed
        // TODO add your handling code here:
          opcionesestadistica=Integer.parseInt(evt.getActionCommand().toString());
    }//GEN-LAST:event_jrbtn_piezasActionPerformed

    private void jrbtn_precioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_precioActionPerformed
        // TODO add your handling code here:
          opcionesestadistica=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_precioActionPerformed

    private void jmni_actualizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmni_actualizarActionPerformed
        // TODO add your handling code here:
         this.carga_datos_stadisticasxmovi();
    }//GEN-LAST:event_jmni_actualizarActionPerformed

    private void jrbtn_costoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_costoActionPerformed
        // TODO add your handling code here:
          opcionesestadistica=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_costoActionPerformed

    private void jbtn_generareporteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtn_generareporteActionPerformed
        // TODO add your handling code here:
        this.carga_datos_stadisticasxmovi();
    }//GEN-LAST:event_jbtn_generareporteActionPerformed

    private void jrbtn_piezasdActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_piezasdActionPerformed
        // TODO add your handling code here:
        opcionesestadisticad=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_piezasdActionPerformed

    private void jrbtn_costodActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_costodActionPerformed
        // TODO add your handling code here:
        opcionesestadisticad=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_costodActionPerformed

    private void jrbtn_preciodActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_preciodActionPerformed
        // TODO add your handling code here:
        opcionesestadisticad=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_preciodActionPerformed

    private void jrbtn_todosdActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbtn_todosdActionPerformed
        // TODO add your handling code here:
        opcionesestadisticad=Integer.parseInt(evt.getActionCommand().toString());
}//GEN-LAST:event_jrbtn_todosdActionPerformed

    private void jbtn_generareportedetaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtn_generareportedetaActionPerformed
        // TODO add your handling code here:
        String buscaid[]=this.jtf_descripcionmovimientos.getText().toString().split(":");
        this.carga_datos_stadisticasxmovidetalle(1, "0", buscaid[0]);
}//GEN-LAST:event_jbtn_generareportedetaActionPerformed


private void jt_acumuladoxmovimientosMouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
    }
private void jt_acumuladoxsubfamMouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
    }

private void dioclick(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:

         System.out.println("dio doble  click");

        int fila =jt_acumuladoxmovimientos.getSelectedRow();
        String desmov[]=jt_acumuladoxmovimientos.getValueAt(fila, 0).toString().split(":");
        this.jtf_descripcionmovimientos.setText(desmov[0]+":"+desmov[1]);
        this.jtf_descripcionmovimientosfam.setText(desmov[0]+":"+desmov[1]);
        this.jtf_descripcionmovimientossubfam.setText(desmov[0]+":"+desmov[1]);
        this.carga_datos_stadisticasxmovidetalle(1, "0", desmov[0]);
        this.carga_datos_stadisticaxmovidefamilia(0,desmov[0]);
        this.carga_datos_stadisticaxmovidesufamilia(0,desmov[0]);
    }
private void dioclickfam(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:

         System.out.println("dio doble  click");

        int fila =jt_acumuladoxfamilia.getSelectedRow();
        String desfa[]=jt_acumuladoxfamilia.getValueAt(fila, 0).toString().split(":");
        String desmov[]=this.jtf_descripcionmovimientosfam.getText().split(":");
        articulos_sie_almacen_movi_estadis_detalle fasamed=new articulos_sie_almacen_movi_estadis_detalle(1,desmov[0],desmov[1],desfa[0],desfa[1]);
        fasamed.pack();
        fasamed.setVisible(true);
    }
private void dioclicksubfam(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:

         System.out.println("dio doble  click");

        int fila =jt_acumuladoxsubfam.getSelectedRow();
        String desfa[]=jt_acumuladoxsubfam.getValueAt(fila, 0).toString().split(":");
        String desmov[]=this.jtf_descripcionmovimientossubfam.getText().split(":");
        articulos_sie_almacen_movi_estadis_detalle fasamed=new articulos_sie_almacen_movi_estadis_detalle(2,desmov[0],desmov[1],desfa[0],desfa[1]);
        fasamed.pack();
        fasamed.setVisible(true);
    }
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new articulos_sie_almacen_movi_estadis().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JButton jbtn_generareporte;
    private javax.swing.JButton jbtn_generareportedeta;
    private javax.swing.JMenuItem jmni_actualizar;
    private javax.swing.JMenuItem jmni_escape;
    private javax.swing.JMenuItem jmni_salir;
    private javax.swing.JRadioButton jrbtn_costo;
    private javax.swing.JRadioButton jrbtn_costod;
    private javax.swing.JRadioButton jrbtn_piezas;
    private javax.swing.JRadioButton jrbtn_piezasd;
    private javax.swing.JRadioButton jrbtn_precio;
    private javax.swing.JRadioButton jrbtn_preciod;
    private javax.swing.JRadioButton jrbtn_todos;
    private javax.swing.JRadioButton jrbtn_todosd;
    private javax.swing.JTable jt_acumuadoxtiendadetalle;
    private javax.swing.JTable jt_acumuladoxfamilia;
    private javax.swing.JTable jt_acumuladoxmovimientos;
    private javax.swing.JTable jt_acumuladoxsubfam;
    private javax.swing.JTextField jtf_descripcionmovimientos;
    private javax.swing.JTextField jtf_descripcionmovimientosfam;
    private javax.swing.JTextField jtf_descripcionmovimientossubfam;
    // End of variables declaration//GEN-END:variables

}
